/*
 * Created on Mar 7, 2005
 * Created by dfhuynh
 */
package edu.mit.simile.longwell.tag;

import java.util.List;
import java.util.Set;

import com.hp.hpl.jena.rdf.model.Resource;

import edu.mit.simile.Simile;
import edu.mit.simile.longwell.IStructuredModel;

/**
 * @author dfhuynh
 */
public interface ITagModel extends IStructuredModel {
	final static public String s_tagNamespace = "urn:tag:";
	final static public String s_simile_tag = Simile.s_namespace + "tag";
	
	public Set getTags();
	
	public Set getTagLabels();
	
	public String getTagLabel(Resource tag);
	
	
	public Set getObjects(String tagLabel);
	
	public Set getObjects(Resource tag);
	
	public Set getObjectTags(Resource object);
	
	public Set getObjectTags(Set objects);
	
	public Set getObjectTagLabels(Resource object);
	
	public Set getObjectTagLabels(Set objects);
	
	public String getObjectTagString(Resource object);
	
	
	
	public List completeTags(String prefix, int max);
	
	public void clearTags(Resource object);
	
	public void clearTags(Set objects);
	
	public void assignTags(Resource object, String[] tagLabels);
	
	public void assignTags(Set objects, String[] tagLabels);
}
